package com.example.module_filemanage.Interface;

import com.example.module_filemanage.Public.Constant;

import java.util.ArrayList;

import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Response;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

/**
 * Created by SJ on 2018/4/18.
 */

public interface IFileServer {

    /**
     * 获取空间列表
     * @return
     */
    @GET(Constant.spaces)
    Call<ArrayList<String>> getBuckets();

    /**
     * 获取空间的域名
     * @param tb1
     * @return index=0 是域名
     */
    @GET(Constant.spaceurl)
    Call<ArrayList<String>> getBucketsUrl(@Query("tbl") String tb1);

    /**
     * 获取当前存储量
     * @param bucket
     * @param region   地区
     * @param begin 起始时间
     * @param end   结束时间
     * @param g
     * @return
     */
    @GET(Constant.spacesize)
    Call<ResponseBody> getSpaceSize(@Query("bucket") String bucket,@Query("begin") String begin,@Query("end") String end,@Query("g") String g);

    /**
     * 获取空间文件数量
     * @param bucket
     * @param region
     * @param begin
     * @param end
     * @param g
     * @return
     */
    @GET(Constant.spacefilecount)
    Call<ResponseBody> getSpaceFileCount(@Query("bucket") String bucket,@Query("begin") String begin,@Query("end") String end,@Query("g") String g);

    //创建空间
    @POST("/mkbucketv2/{EncodedBucketName}")
    Call<ResponseBody> addNewSpace(@Path("EncodedBucketName") String EncodedBucketName);
    //    @GET("/group/{id}/users")
//    List<User> groupList(@Path("id") int groupId);
//
//    @GET("/group/{id}/users")
//    List<User> groupList(@Path("id") int groupId, @Query("sort") String sort);
//
//    @GET("/group/{id}/users")
//    List<User> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
//
//    @POST("/users/new")
//    void createUser(@Body User user, Callback<User> cb);//Callback参数下面讲解
//
//    @Headers("Cache-Control: max-age=640000")
//    @GET("/widget/list")
//    List<Widget> widgetList();
//
//    @Multipart//多部分数组形式提交体
//    @POST("Ashx/Snapshot.ashx")
//    Call<Result> uploadPictures(@Part() MultipartBody.Part  part);
//
//    @Multipart//多部分列表形式提交体
//    @POST("AppHandler_Test.ashx")
//    Call<ResponseBody> modifyy(@PartMap Map<String, RequestBody> map, @Part List<MultipartBody.Part> parts);
//
//    @FormUrlEncoded//表单提交
//    @POST("/user/edit")
//    Call<ResponseBody> updateUser(@Field("first_name") String first, @Field("last_name") String last);
//
//    @Headers({"Content-type:application/json,"Accept: application/json"})
//            @POST("/api/v1/trade/HasAccount.json")
//            Call<BaseResponse> createCommit(@Body RequestBody route);
}

